home *** CD-ROM | disk | FTP | other *** search
/ Disc to the Future 2 / Disc to the Future Part II Programmer's Reference (Wayzata Technology)(6013)(1992).bin / MAC / THINKC / 3_0 / JOVE_4 / JOVEDOCS / MAKEFILE < prev    next >
Text File  |  1988-05-07  |  8KB  |  281 lines

  1. ###########################################################################
  2. # This program is Copyright (C) 1986, 1987, 1988 by Jonathan Payne.  JOVE #
  3. # is provided to you without charge, and with no warranty.  You may give  #
  4. # away copies of JOVE, including sources, provided that this notice is    #
  5. # included in all the files.                                              #
  6. ###########################################################################
  7.  
  8. # TMPDIR is where the tmp files get stored, usually /tmp or /tmp/jove.  If
  9. # your system does not remove subdirectories of /tmp on reboot (lots do
  10. # remove them these days) then it makes sense to make TMPDIR be /tmp/jove.
  11. # But if you want to recover buffers on system crashes, you should create a
  12. # directory that doesn't get clearned upon reboot, and use that instead.
  13. # You would probably want to clean out that directory periodically with
  14. # /etc/cron.  LIBDIR is for online documentation, the PORTSRV process,
  15. # RECOVER, and the system-wide .joverc file.  BINDIR is where to put the
  16. # executables JOVE and TEACHJOVE.  MANDIR is where the manual pages go for
  17. # JOVE, RECOVER and TEACHJOVE.  MANEXT is the extension for the man pages,
  18. # e.g., jove.1 or jove.l or jove.m.
  19.  
  20. DESTDIR =
  21. TMPDIR = /tmp
  22. LIBDIR = /usr/local/lib/jove
  23. BINDIR = /usr/local
  24. MANDIR = /usr/man/manl
  25. MANEXT = l
  26. SHELL = /bin/csh
  27.  
  28. # These should all just be right if the above ones are.
  29. JOVE = $(DESTDIR)$(BINDIR)/jove
  30. TEACHJOVE = $(DESTDIR)$(BINDIR)/teachjove
  31. RECOVER = $(DESTDIR)$(LIBDIR)/recover
  32. PORTSRV = $(DESTDIR)$(LIBDIR)/portsrv
  33. JOVERC = $(DESTDIR)$(LIBDIR)/.joverc
  34. CMDS.DOC = $(DESTDIR)$(LIBDIR)/cmds.doc
  35. TEACH-JOVE = $(DESTDIR)$(LIBDIR)/teach-jove
  36. JOVEM = $(DESTDIR)$(MANDIR)/jove.$(MANEXT)
  37. TEACHJOVEM = $(DESTDIR)$(MANDIR)/teachjove.$(MANEXT)
  38.  
  39. # Select the right libraries for your system.
  40. #    2.10BSD:LIBS = -ltermcap
  41. #    v7:    LIBS = -ltermcap
  42. #    4.1BSD:    LIBS = -ltermcap -ljobs
  43. #    4.2BSD:    LIBS = -ltermcap
  44. #    4.3BSD:    LIBS = -ltermcap
  45. #    SysV Rel. 2: LIBS = -lcurses
  46. #    SCO Xenix: LIBS = -ltermcap -lx
  47.  
  48. LIBS = -ltermcap
  49.  
  50. # If you are not VMUNIX (vax running Berkeley Version 4), you must specify
  51. # the -i flags (split I/D space) and maybe the -x option (for adb to work).
  52. #    2.10BSD:LDFLAGS =
  53. #    v7:    LDFLAGS =
  54. #    4.1BSD:    LDFLAGS =
  55. #    4.2BSD:    LDFLAGS =
  56. #    4.3BSD:    LDFLAGS =
  57. #    SysV Rel. 2: LDFLAGS = -Ml
  58. #    SCO Xenix: LDFLAGS = -Ml -F 3000
  59. #
  60. # SEPFLAG should be:
  61. #    not on a PDP-11:        SEPFLAG =
  62. #    PDP-11 with separate I&D:    SEPFLAG = -i
  63. #    PDP-11 without separate I&D:    SEPFLAG = -n
  64. #
  65.  
  66. LDFLAGS = 
  67.  
  68. SEPFLAG =
  69.  
  70. # for SCO Xenix, set
  71. #    MEMFLAGS = -Mle
  72. #    CFLAGS = -LARGE -O -F 3000 -K -Mle  (say -Mle2 for an 80286)
  73.  
  74. CFLAGS = -O 
  75.  
  76. BASESEG = funcdefs.o keymaps.o argcount.o ask.o buf.o ctype.o delete.o \
  77.       disp.o insert.o io.o jove.o malloc.o marks.o misc.o re.o \
  78.       screen.o table.o tune.o util.o vars.o version.o
  79. OVLAY1 = abbrev.o rec.o paragraph.o fmt.o
  80. OVLAY2 = c.o wind.o fp.o move.o
  81. OVLAY3 = extend.o macros.o
  82. OVLAY4 = iproc.o re1.o
  83. OVLAY5 = proc.o scandir.o term.o case.o
  84.  
  85. OBJECTS = $(BASESEG) $(OVLAY1) $(OVLAY2) $(OVLAY3) $(OVLAY4) $(OVLAY5)
  86.  
  87. C_SRC = funcdefs.c abbrev.c argcount.c ask.c buf.c c.c case.c ctype.c \
  88.     delete.c disp.c extend.c fp.c fmt.c insert.c io.c iproc.c \
  89.     jove.c macros.c malloc.c marks.c misc.c move.c paragraph.c \
  90.     proc.c re.c re1.c rec.c scandir.c screen.c table.c term.c util.c \
  91.     vars.c version.c wind.c getch.c mac.c
  92.  
  93. SOURCES = $(C_SRC) portsrv.c recover.c setmaps.c teachjove.c
  94.  
  95. HEADERS = ctype.h io.h jove.h re.h rec.h table.h temp.h termcap.h \
  96.     tune.h externs.h mac.h
  97.  
  98. DOCS =    doc/cmds.doc.nr doc/example.rc doc/jove.1 doc/jove.2 doc/jove.3 \
  99.     doc/jove.4 doc/jove.5 doc/jove.nr doc/system.rc \
  100.     doc/teach-jove doc/teachjove.nr doc/README doc/jove.qref
  101.  
  102. MISC = Makefile Ovmakefile Makefile.dos tune.dos tune.template \
  103.     README Readme.dos Readme.mac iproc-pipes.c iproc-ptys.c
  104.  
  105. SUPPORT = teachjove.c recover.c setmaps.c portsrv.c keymaps.txt \
  106.     macvert.c menumaps.txt mjovers.Hqx
  107.  
  108. BACKUPS = $(HEADERS) $(C_SRC) $(DOCS) $(SUPPORT) $(MISC)
  109.  
  110. all:    sdate xjove recover teachjove portsrv macvert edate
  111.  
  112. sdate:
  113.     @echo "**** make started at `date` ****"
  114.  
  115. edate:
  116.     @echo "**** make completed at `date` ****"
  117.  
  118. xjove:    $(OBJECTS)
  119.     $(CC) $(LDFLAGS) -o xjove $(OBJECTS) $(LIBS)
  120.     @-size xjove
  121.  
  122. gjove:    $(OBJECTS)
  123.     ld -X /lib/gcrt0.o -o gjove $(OBJECTS) -lc $(LIBS)
  124.     @-size gjove
  125.  
  126. ovjove:    $(OBJECTS)
  127.     ld $(SEPFLAG) $(LDFLAGS) -X /lib/crt0.o \
  128.         -Z $(OVLAY1) \
  129.         -Z $(OVLAY2) \
  130.         -Z $(OVLAY3) \
  131.         -Z $(OVLAY4) \
  132.         -Z $(OVLAY5) \
  133.         -Y $(BASESEG) \
  134.         -o xjove $(LIBS) -lc; \
  135.     @-size xjove
  136.  
  137. portsrv:    portsrv.o
  138.     $(CC) $(LDFLAGS) -o portsrv $(SEPFLAG) portsrv.o $(LIBS)
  139.  
  140. recover:    recover.o tune.o rec.h temp.h
  141.     $(CC) $(LDFLAGS) -o recover $(SEPFLAG) recover.o tune.o $(LIBS)
  142.  
  143. teachjove:    teachjove.o
  144.     $(CC) $(LDFLAGS) -o teachjove $(SEPFLAG) teachjove.o $(LIBS)
  145.  
  146. setmaps:    setmaps.o funcdefs.c
  147.     $(CC) $(LDFLAGS) -o setmaps setmaps.o
  148.  
  149. teachjove.o:    teachjove.c /usr/include/sys/types.h /usr/include/sys/file.h
  150.     cc -c $(CFLAGS) -DTEACHJOVE=\"$(TEACH-JOVE)\" teachjove.c
  151.  
  152. # don't optimize setmaps.c because it produces bad code in some places
  153. # for some reason
  154. setmaps.o:    funcdefs.c keymaps.txt
  155.     $(CC) $(MEMFLAGS) -c setmaps.c
  156.  
  157. # ignore error messages from setmaps
  158. # it doesn't understand ifdefs
  159.  
  160. keymaps.c:    setmaps keymaps.txt
  161.     -setmaps < keymaps.txt > keymaps.c
  162.  
  163. keymaps.o:    keymaps.c jove.h
  164.  
  165. tune.c: Makefile tune.template
  166.     @echo "/* Changes should be made in Makefile, not to this file! */" > tune.c
  167.     @echo "" >> tune.c
  168.     @sed -e 's;TMPDIR;$(TMPDIR);' \
  169.          -e 's;LIBDIR;$(LIBDIR);' \
  170.          -e 's;BINDIR;$(BINDIR);' \
  171.          -e 's;SHELL;$(SHELL);' tune.template >> tune.c
  172.  
  173. iproc.o: iproc-ptys.c iproc-pipes.c iproc.c
  174.     $(CC) -c $(CFLAGS) iproc.c
  175.  
  176. macvert:    macvert.c
  177.     $(CC) $(CFLAGS) -o macvert macvert.c
  178.  
  179. # install doesn't work for Xenix (no install program)
  180.  
  181. install: $(DESTDIR)$(LIBDIR) $(TEACH-JOVE) $(CMDS.DOC) $(JOVERC) \
  182.      $(PORTSRV) $(RECOVER) $(JOVE) $(TEACHJOVE) $(JOVEM) \
  183.      $(RECOVERM) $(TEACHJOVEM)
  184.  
  185. $(DESTDIR)$(LIBDIR):
  186.     -mkdir $(DESTDIR)$(LIBDIR)
  187.  
  188. $(TEACH-JOVE): doc/teach-jove
  189.     install -c -m 644 doc/teach-jove $(TEACH-JOVE)
  190.  
  191. doc/cmds.doc:    doc/cmds.doc.nr doc/jove.4 doc/jove.5
  192.     nroff doc/cmds.doc.nr doc/jove.4 doc/jove.5 > doc/cmds.doc
  193.  
  194. $(CMDS.DOC): doc/cmds.doc
  195.     install -c -m 644 doc/cmds.doc $(CMDS.DOC)
  196.  
  197. $(JOVERC): doc/system.rc
  198.     install -c -m 644 doc/system.rc $(JOVERC)
  199.  
  200. $(PORTSRV): portsrv
  201.     install -c -s -m 755 portsrv $(PORTSRV)
  202.  
  203. $(RECOVER): recover
  204.     install -c -s -m 755 recover $(RECOVER)
  205.  
  206. $(JOVE): xjove
  207.     install -c -m 755 xjove $(JOVE)
  208.  
  209. $(TEACHJOVE): teachjove
  210.     install -c -s -m 755 teachjove $(TEACHJOVE)
  211.  
  212. $(JOVEM): doc/jove.nr
  213.     @sed -e 's;TMPDIR;$(TMPDIR);' \
  214.          -e 's;LIBDIR;$(LIBDIR);' \
  215.          -e 's;SHELL;$(SHELL);' doc/jove.nr > /tmp/jove.nr
  216.     install -m 644 /tmp/jove.nr $(JOVEM)
  217.  
  218. $(TEACHJOVEM): doc/teachjove.nr
  219.     @sed -e 's;TMPDIR;$(TMPDIR);' \
  220.          -e 's;LIBDIR;$(LIBDIR);' \
  221.          -e 's;SHELL;$(SHELL);' doc/teachjove.nr > /tmp/teachjove.nr
  222.     install -m 644 /tmp/teachjove.nr $(TEACHJOVEM)
  223.  
  224. echo:
  225.     @echo $(C-FILES) $(HEADERS)
  226.  
  227. lint:
  228.     lint -n $(C_SRC) tune.c keymaps.c
  229.     @echo Done
  230.  
  231. tags:
  232.     ctags -w $(C_SRC) $(HEADERS) iproc-ptys.c
  233.  
  234. ciall:
  235.     ci $(BACKUPS)
  236.  
  237. coall:
  238.     co $(BACKUPS)
  239.  
  240. jove.shar:
  241.     shar $(BACKUPS) > jove.shar
  242.  
  243. backup: $(BACKUPS)
  244.     tar chf backup $(BACKUPS)
  245.  
  246. tape-backup:
  247.     tar c $(BACKUPS)
  248.  
  249. srcdownload:
  250.     kermit -s $(SUPPORT) $(MISC) $(HEADERS) $(C_SRC)
  251.  
  252. docdownload:
  253.     kermit -s $(DOCS)
  254.  
  255. touch:
  256.     touch $(OBJECTS)
  257.  
  258. clean:
  259.     rm -f a.out core *.o keymaps.c tune.c xjove portsrv recover setmaps \
  260.     teachjove macvert
  261.  
  262. # This version only works under 4.3BSD
  263. #depend:
  264. #    for i in ${SOURCES} ; do \
  265. #        cc -M ${CFLAGS} $$i | awk ' { if ($$1 != prev) \
  266. #            { if (rec != "") print rec; rec = $$0; prev = $$1; } \
  267. #            else { if (length(rec $$2) > 78) { print rec; rec = $$0; } \
  268. #            else rec = rec " " $$2 } } \
  269. #            END { print rec } ' >> makedep; done
  270. #    echo '/^# DO NOT DELETE THIS LINE/+2,$$d' >eddep
  271. #    echo '$$r makedep' >>eddep
  272. #    echo 'w' >>eddep
  273. #    cp Makefile Makefile.bak
  274. #    ed - Makefile < eddep
  275. #    rm eddep makedep
  276. #    echo '# DEPENDENCIES MUST END AT END OF FILE' >> Makefile
  277. #    echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >> Makefile
  278. #    echo '# see make depend above' >> Makefile
  279. #
  280. ## DO NOT DELETE THIS LINE -- make depend uses it
  281.